<?php
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ProductsController
 *
 * @author LeVinh
 */
include_once APPLICATION_PATH."/models/Product.php";
class Admin_ProductController extends Zend_Controller_Action {
    
    public function init() {
        $bootstrap = $this->getInvokeArg("bootstrap");
        $this->aConfig = $bootstrap->getOptions();
        $this->view->aConfig = $this->aConfig;
        $this->model = new Model_Product();
        $this->modelMapper = new Model_ProductMapper();
    }
    
    public function indexAction(){}
    public function listAction(){}

    public function serviceAction()
    {
        $this->_helper->layout->disableLayout();  
        $status_filter = $this->getParam("status","0");
        foreach ($this->modelMapper->fetchAll() as $items ) 
        {                                
            if($status_filter=='1')
            {
                $menber[]=array(
                    'id'=>$items->getId(),
                    'name'=>$items->getName(),
                    'price'=>$items->getPrice(),
                    'product_cat_id' =>  GlobalLib::getName("Product_Category", $items->getProduct_Cat_Id(), "name"),
                    'order' => $items->getOrder()
                ); 
            }
            else if($status_filter=='0')
            {
               if($items->getStatus()=='0') $status = "Không";
               else $status="Có";
               $menber[]=array(
                    'id'=>$items->getId(),
                    'name'=>$items->getName(),
                    'price'=>$items->getPrice(),
                    'product_cat_id' =>  GlobalLib::getName("Product_Category", $items->getProduct_Cat_Id(), "name"),
                    'order' => $items->getOrder(),
                    'status'=> $status
                ); 
            }
        }
        echo json_encode($menber);
        exit();
    }
    
    public function addAction() {
        if ($this->getRequest()->isPost()) {   
            $redirectUrl = $this->aConfig["site"]["url"] . "admin/product/list";
            if (isset($_POST["id"])) {
                $this->model->setId($_POST["id"]);
            }
            if (isset($_POST["name"])) {
                $this->model->setName($_POST["name"]);
            }
            if (isset($_POST["price"])) {
                $this->model->setPrice($_POST["price"]);
            }
            if (isset($_POST["product_category_id"])) {
                $this->model->setProduct_Cat_Id($_POST["product_category_id"]);
            }
            if (isset($_POST["order"])) {
                $this->model->setOrder($_POST["order"]);
            }
            if (isset($_POST["status"])) {
                $status = 1;
            } else {
                $status = 0;
            }            
            $this->model->setStatus($status);
            $this->model->setCreated(date("Y/m/d H:i:s"));
            $this->model->setCreated_By(GlobalLib::getLoginId());
            $this->model->setModified(date("Y/m/d H:i:s"));
            $this->model->setModified_By(GlobalLib::getLoginId());
            $this->modelMapper->save($this->model);
            $this->_redirect($redirectUrl);
        }
        $this->view->item = $this->model;
        
    }
    public function editAction() {
        $id= $this->_getParam("id","");
        $redirectUrl=$this->aConfig["site"]["url"]."admin/product/list";
        if(empty($id)){
            $this->_redirect($redirectUrl);
        }
        $this->modelMapper->find($id,$this->model);
        $getId=$this->model->getId();
        if(empty($getId)){
             $this->_redirect($redirectUrl);
        }
        if($this->getRequest()->isPost()){
            if (isset($_POST["id"])) {
                $this->model->setId($_POST["id"]);
            }
            if (isset($_POST["name"])) {
                $this->model->setName($_POST["name"]);
            }
            if (isset($_POST["price"])) {
                $this->model->setPrice($_POST["price"]);
            }
            if (isset($_POST["product_category_id"])) {
                $this->model->setProduct_Cat_Id($_POST["product_category_id"]);
            }
            if (isset($_POST["order"])) {
                $this->model->setOrder($_POST["order"]);
            }
            if (isset($_POST["status"])) {
                $status = 1;
            } else {
                $status = 0;
            }            
            $this->model->setStatus($status);
            $this->model->setModified(date("Y/m/d H:i:s"));
            $this->model->setModified_By(GlobalLib::getLoginId());
            $this->modelMapper->save($this->model);
            $this->_redirect($redirectUrl);
        }        
        $this->view->item=$this->model;
    }    
    public function deleteAction(){
        $id= $this->_getParam("id","");
        $redirectUrl=$this->aConfig["site"]["url"]."admin/product/list";                       
        $this->modelMapper->delete($id);
        $this->_redirect($redirectUrl);
    }
    public function getproductAction(){
          $this->_helper->layout()->disableLayout();
                $productHTML = '<select name="product_id" style="width: 386px;"><option value=""></option></select>';
                if ($this->_request->isPost()) {
                    $product_cat_id = $this->_getParam("product_cat_id", "");
                    if (is_numeric($product_cat_id)) {
                        $productHTML = GlobalLib::getCombo('product_id', 'product', 'id', 'name', 0, false, 'where product_cat_id=' . $product_cat_id,'','','Tất cả');
                    }
                }
                $productHTML = $productHTML;
                echo '[{"html":\'' . $productHTML . '\'}]';
                exit;
    }
}
